package networkInterface;

import java.io.Serializable;
import java.net.InetAddress;

/**
 * Classe Utilisateur
 * 
 * @author Flo
 * 
 */
public class Utilisateur implements Serializable {

	/**
	 * permet la serialisation
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * pseudo de l'utilisateur
	 */
	private String nom;

	/**
	 * adresse de l'utilisateur
	 */
	private InetAddress address;

	/**
	 * port sur lequel ecoute l'utilisateur
	 */
	private int port;

	/**
	 * 
	 * @param nom
	 *            pseudo de l'utilisateur
	 * @param address
	 *            adresse de l'utilisateur
	 * @param port
	 *            port sur lequel ecoute l'utilisateur
	 */
	public Utilisateur(String nom, InetAddress address, int port) {
		this.nom = nom;
		this.address = address;
		this.port = port;
	}

	/**
	 * 
	 * @return le nom de l'utilisateur
	 */
	public String getNom() {
		return this.nom;
	}

	/**
	 * 
	 * @return l'adresse de l'utilisateur
	 */
	public InetAddress getAddress() {
		return this.address;
	}

	/**
	 * 
	 * @return le port d'ecoute
	 */
	public int getPort() {
		return this.port;
	}

	/**
	 * toString de l'utilisateur
	 */
	public String toString() {
		return this.nom + " (" + this.address + ":" + this.port + ")";
	}

	/**
	 * Surcharge de la methode equals de Object qui dit si deux utilisateurs
	 * sont les mêmes
	 */
	@Override
	public boolean equals(Object obj) {
		if (obj instanceof Utilisateur) {
			return this.nom.equals(((Utilisateur) obj).nom);
		}
		return super.equals(obj);
	}
}
